import E from "wangeditor";
import hljs from "highlight.js";
class Editor {
  constructor(querySelector, options = {}) {
    const SINA_URL_PATH =
      "http://img.t.sinajs.cn/t4/appstyle/expression/ext/normal";
    /**
     * options 有一部分默认配置 也可以自定义 自定义覆盖默认
     */
    const editor = new E(querySelector);
    this.editor = editor;
    editor.highlight = hljs;
    editor.config.height = 600;
    // 配置触发 onchange 的时间频率，默认为 200ms
    editor.config.onchangeTimeout = 500; // 修改为 500ms
    editor.config.placeholder = "自定义 placeholder 提示文字";
    editor.config.focus = false;
    editor.config.emotions = [
      {
        title: "新浪", // tab 的标题
        type: "image", // 'emoji' 或 'image' ，即 emoji 形式或者图片形式
        content: [
          {
            alt: "[坏笑]",
            src: `${SINA_URL_PATH}/50/pcmoren_huaixiao_org.png`,
          },
          { alt: "[舔屏]", src: `${SINA_URL_PATH}/40/pcmoren_tian_org.png` },
          { alt: "[污]", src: `${SINA_URL_PATH}/3c/pcmoren_wu_org.png` },
        ],
      },
      {
        title: "emoji", // tab 的标题
        type: "emoji", // 'emoji' / 'image'
        // emoji 表情，content 是一个数组即可
        content:
          "😀 😃 😄 😁 😆 😅 😂 😊 😇 🙂 🙃 😉 😓 😪 😴 🙄 🤔 😬 🤐".split(
            /\s/
          ),
      },
    ];
    // 配置行高
    editor.config.lineHeights = ["1", "1.15", "1.6", "2", "2.5", "3"];
    // editor.config.menus = ["bold", "head", "link", "italic", "underline"];
    // 配置菜单栏，设置不需要的菜单
    // editor.config.excludeMenus = ["emoticon", "video"];
    editor.config.colors = ["#000000", "#eeece0", "#1c487f", "#4d80bf"];
    // 配置字体
    editor.config.fontNames = [
      // 对象形式 v4.6.16
      { name: "黑体", value: "黑体" },
      { name: "绝绝字体", value: "Times New Roman" },
      // 字符串形式
      "黑体",
      "仿宋",
      "楷体",
      "标楷体",
      "华文仿宋",
      "华文楷体",
      "宋体",
      "微软雅黑",
      "Arial",
      "Tahoma",
      "Verdana",
      "Times New Roman",
      "Courier New",
    ];
    // 当我们使用兼容模式的时候，可以自定义记录的频率，默认 200 ms
    editor.config.onchangeTimeout = 500; // 修改为 500 ms

    // 还可以修改历史记录的步数。默认 30 步
    editor.config.historyMaxSize = 50; // 修改为 50 步
    console.log(options, "xx1");
    Object.keys(options).map((res) => {
      editor.config[res] = options[res];
    });
  }
}

export default Editor;
